package com.hongdee.base.msg.service;

import com.hongdee.base.msg.entity.TBcMsg;

import java.util.Map;

/**
 * 名  称:ITBcMsgService
 * 类  型: interface
 * 描  述: 用一句话描述类的作用
 * 路  径:com.hongdee.base.msg.service
 * 作  者: zhuhongchao
 * 日  期:2017/2/13 11:00
 */
public interface ITBcMsgService {


    /**
     * @return Map
     * @throws Exception
     * @desc 通过 JDBCDao分页查询
     * @author 术洪超
     */
    public Map page(String companyId, String start, String limit) throws Exception;

    /**
     * @param id 主键 ID
     * @return Map
     * @throws Exception
     * @desc 查询详情
     * @author 术洪超
     */
    public Map info(String id) throws Exception;

    /**
     * @param data 要保存的变更的短信模板实体
     * @return Map
     * @throws Exception
     * @desc 保存添加或者修改的实体内容，通过主键判断
     * @author 术洪超
     */
    public TBcMsg saveOrUpdate(TBcMsg data) throws Exception;

    /**
     * @param id     主键 ID
     * @param status 状态
     * @return
     * @throws Exception
     * @desc 修改短信内容
     * @author 术洪超
     */
    public void update(String id, String status) throws Exception;


     /**
         * @param companyId  公司ID
         * @param msgTypeCode  短信类型编码
         * @param params 传递的短信内容参数
         * @return Map
         * @throws Exception
         * @desc 生成短信详情
         * @author 术洪超
         */
    public Map buildMsgContent(String companyId, String msgTypeCode, Map<Object, String> params) throws Exception;

    /**
     * 根据公司ID 短信类型查询短信模板信息
     * @param companyId
     * @param typeCode
     * @return
     * @throws Exception
     */
    public Map<String,Object> findMsgByCompanyIdAndTypeCode(String companyId,String typeCode) throws Exception;

    /**
     * paramMap
     * key  value
     * {1}  车主名称
     * {2}  男士女士
     * {3}  车牌号
     * {4}  公里
     * {5}  时间
     * {6}  SA姓名
     * @param companyId 公司ID
     * @param typeCode 分类名称
     * @param mobile 接收短信手机号
     * @param paramMap
     * @return
     * @throws Exception
     */
    public boolean sendMsg(String companyId,String typeCode,String mobile,Map<String,Object> paramMap) throws Exception;

    /**
     * 返回短信模板内容
     * @param companyId
     * @param typeCode
     * @param paramMap
     * @return
     * @throws Exception
     */
    public String getMsgContent(String companyId,String typeCode,Map<String,Object> paramMap) throws Exception;

}
